package com.vepick.vue.interfaceClient;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.Scanner;

import com.vepick.metier.requetes.Requetes_reservation;

/*
 * Vue qui sert � valider la location d'un v�lo
 */
public class InterfaceReservationAbo {

	public static final int AFFICHER_SES_RESERVATIONS = 1;
	public static final int AJOUTER_UNE_RESERVATION = 2;
	public static final int SUPPRIMER_UNE_RESERVATION = 3;
	public static final int MODIFIER_UNE_RESERVATION = 4;
	public static final int RETOUR = 5;
	public static final int QUITTER_APPLICATION = 99;

	public static void ouvrirInterfaceReservationAbo(Connection conn,
			int idClient) throws SQLException {

		// Variables locales n�cessaires au fonctionnement du programme
		@SuppressWarnings("resource")
		Scanner scanner = new Scanner(System.in);
		int choix = 0;
		int typeModif = -1;

		// Traitement du choix du client
		while (choix != QUITTER_APPLICATION) {

			// Affichage des diff�rentes fonctionnalit�s
			afficherFonctionnalites();

			// Fonctionnalit� tapp�e par le client
			choix = scanner.nextInt();

			// Redirection vers l'interface choisie
			switch (choix) {
			case AFFICHER_SES_RESERVATIONS:
				Requetes_reservation.afficherLesReservations(conn, idClient);
				break;
			case AJOUTER_UNE_RESERVATION:
				Requetes_reservation.ajouterReservation(conn, idClient);
				break;
			case SUPPRIMER_UNE_RESERVATION:
				Requetes_reservation.supprimerReservation(conn, idClient);
				break;
			case MODIFIER_UNE_RESERVATION:
				System.out
						.println("Que voulez vous modifier? (1: station de d�part, 2: date de d�but de location, 0: retour)");
				typeModif = scanner.nextInt();
				if (typeModif == 1) {
					Requetes_reservation.modifierStationReserv(conn, idClient);
				} else if (typeModif == 2) {
					Requetes_reservation.modifierDebutLocReserv(conn, idClient);
				}
				break;
			case RETOUR:
				InterfaceClientAbo.ouvrirInterfaceClientAbo(conn, idClient);
				break;
			case QUITTER_APPLICATION:
				try {
					conn.close();
					System.out.println("A bientot!");
					System.exit(0);
				} catch (SQLException e) {
					System.out
							.println("Erreur dans la fermeture de la connexion");
					System.exit(-1);
					e.printStackTrace();
				}
				break;
			default:
				break;
			}
		}
	}

	private static void afficherFonctionnalites() {
		System.out
				.println("#######################################################");
		System.out
				.println("#                 Mes reservations                    #");
		System.out
				.println("#######################################################");
		System.out.println("\n\n");
		System.out.println("Afficher mes reservations : "
				+ AFFICHER_SES_RESERVATIONS);
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out.println("Ajouter une reservation : "
				+ AJOUTER_UNE_RESERVATION);
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out.println("Supprimer une reservation : "
				+ SUPPRIMER_UNE_RESERVATION);
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out.println("Modifier une reservation : "
				+ MODIFIER_UNE_RESERVATION);
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out.println("Retour a l'ecran principal : " + RETOUR);
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out.println("Quitter l'application : " + QUITTER_APPLICATION);
	}
}
